package server.db;

import java.sql.*;

public class Insert {
	private static Connection c;

	public void insertNewUser(Usuario user) {
		/**
		 * Inserto en Usuarios
		 */
		try {
			c = DriverManager.getConnection("jdbc:sqlite:tablas/chat.db");
			PreparedStatement st = c
					.prepareStatement("INSERT INTO USUARIOS "
							+ "(id, nombre, apellido, usuario, password, estado, pregunta, respuesta, fechaalta) "
							+ "values(?,?,?,?,?,'activo',?,?,?" + ");");
			st.setInt(1, user.id);
			st.setString(2, user.nombre);
			st.setString(3, user.apellido);
			st.setString(4, user.usuario);
			st.setString(5, user.password);
			st.setString(6, user.pregunta);
			st.setString(7, user.respuesta);
			st.setTimestamp(8, new Timestamp(System.currentTimeMillis()));//ver como
			// implementar************************
			st.executeUpdate();
			System.out.println("Usuario creado");

		} catch (SQLException e) {
			e.printStackTrace();
		}

	}

	public void insertAmistad(Usuario user, Usuario amigo){
		try{
			Statement st = c.createStatement();
			String sql = "INSERT INTO AMIGOS(user, amigo) "+
						"values(" + user.id + "," + amigo.id +");";
			st.executeUpdate(sql);
			System.out.println("amistad creada");

		}catch(SQLException e){
			e.printStackTrace();
		}
	}
	
	public void insertHistorial(Usuario user){
		try{
			Statement st = c.createStatement();
			String sql = "INSERT INTO LOGS(id, historial)"
						+"values("+ user.id + ", "+ System.currentTimeMillis() + ");";	
//						"where id = " + user.id + ";";
			st.executeUpdate(sql);
			System.out.println("historial creada");

		}catch(SQLException e){
			e.printStackTrace();
		}
	}

	public void insertInvitacionPendiente(Usuario origen, Usuario destino, String mensaje){
		try {
			Statement st = c.createStatement();
			String sql = "Insert into repositorio(ID, ID_AMIGO, MENSAJES_PENDIENTES) "+
						"values(" + origen.id + ","+ destino.id + "," + mensaje + ");";
		
			st.executeUpdate(sql);
			System.out.println("INVITACION CREADA!!!!");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public void insertMensajePendiente(Usuario origen, Usuario destino, String mensaje){
		try {
			Statement st = c.createStatement();
			String sql = "Insert into repositorio(id,INVITACIONES_PENDIENTES, id_amigo) "+
						"values(" + origen.id + "," + mensaje + "," + destino.id + ");";
			st.executeUpdate(sql);
			System.out.println("mensaje pendiente creada");

		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Class.forName("org.sqlite.JDBC");
		//se establece la conexion a la DB
		c = DriverManager.getConnection("jdbc:sqlite:tablas/chat.db");
		System.out.println("apertura de base de datos correcta ! ");
		Usuario user = new Usuario();
		user.id = 3;
		user.nombre = "fabian";
		user.apellido = "mancini";
		user.estado = true;
		user.fechaalta = 0;
		user.pregunta = "como me llamo?";
		user.respuesta = "manchi";
		user.password = "1234";
		user.usuario = "manchi";
		Insert insert = new Insert();
	//	insert.insertNewUser(user);
		Usuario usuario = new Usuario();
		user.id = 4;
		user.nombre = "fabian";
		user.apellido = "mancini";
		user.estado = true;
		user.fechaalta = 0;
		user.pregunta = "como me llamo?";
		user.respuesta = "manchi";
		user.password = "1234";
		user.usuario = "manchi";
		@SuppressWarnings("unused")
		Insert insert1 = new Insert();
		insert.insertNewUser(user);
		insert.insertAmistad(user, usuario);
		insert.insertHistorial(user);
		String mensaje = "Hola";
		insert.insertInvitacionPendiente(user, usuario, mensaje);
		insert.insertMensajePendiente(user, usuario, mensaje);
		
		/**
		 * 
		 
		try {
			Statement stmt = c.createStatement();
			String nombre, apellido, usuario, password;
			int id;
			ResultSet result = stmt.executeQuery("SELECT * FROM USUARIOS");
			while (result.next()) {
				nombre = result.getString("nombre");
				apellido = result.getString("apellido");
				usuario = result.getString("usuario");
				password = result.getString("password");
				id = result.getInt("id");

				System.out.println(id + "     " + nombre + apellido + usuario + password);
				

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 */
	}

}
